/* 登录 & 注册 */
const express = require('express')
const router = express.Router()
const Profile = require('../../model/Profile')
const passport = require('passport')

//$route Get api/user/test
//desc  返回请求的json数据
//access public
router.get('/test', (req, res) => {
    console.log('有人访问了接口');
    res.json({ msg: '用户信息接口' })
})

//$route Post api/profile/add
//desc  创建信息接口
//access private
router.post('/add', passport.authenticate('jwt', { session: false }), (req, res) => {
    const profileFields = {}
    if (req.body.type) profileFields.type = req.body.type
    if (req.body.describe) profileFields.describe = req.body.describe
    if (req.body.income) profileFields.income = req.body.income
    if (req.body.expend) profileFields.expend = req.body.expend
    if (req.body.cash) profileFields.cash = req.body.cash
    if (req.body.remark) profileFields.remark = req.body.remark
    new Profile(profileFields).save()
        .then(profile => {

            res.json(profile)
        })
})

//$route get api/profile
//desc  获取所有信息
//access private

router.get('/', passport.authenticate('jwt', { session: false }), (req, res) => {
    Profile.find()
        .then(profile => {
            if (!profile) {
                res.json('没有任何内容').status(404)
            }
            res.json(profile)
        })
        .catch(err => res.status(404).json(err))
})
//$route get api/profile/:id
//desc  获取单个信息
//access private

router.get('/:id', passport.authenticate('jwt', { session: false }), (req, res) => {
    Profile.findOne({ _id: req.params.id })
        .then(profile => {
            if (!profile) {
                res.json('没有任何内容').status(404)
            }
            res.json(profile)
        })
        .catch(err => res.status(404).json(err))
})

//$route Post api/profile/edit
//desc  编辑信息接口
//access private
router.post('/edit/:id', passport.authenticate('jwt', { session: false }), (req, res) => {
    const profileFields = {}
    if (req.body.type) profileFields.type = req.body.type
    if (req.body.describe) profileFields.describe = req.body.describe
    if (req.body.income) profileFields.income = req.body.income
    if (req.body.expend) profileFields.expend = req.body.expend
    if (req.body.cash) profileFields.cash = req.body.cash
    if (req.body.remark) profileFields.remark = req.body.remark
    Profile.findOneAndUpdate(
        { _id: req.params.id },
        { $set: profileFields },
        { new: true }
    ).then(profile => res.json(profile))
})


//$route Post api/profile/delete
//desc  编辑信息接口
//access private
router.delete('/delete/:id', passport.authenticate('jwt', { session: false }), (req, res) => {
    Profile.findOneAndRemove({ _id: req.params.id }).then(profile => {
        res.json(profile)
    })
        .catch(err => res.status(404).json('删除失败', err))
})

module.exports = router